const path = require('node:path')

module.exports = (codeConfig, utils) => {
  const { exportExcelApiConfig, hasModifyDialog } = codeConfig.apiConfigStates

  const code = `
    import type { CsListPageInstance } from 'csui'
    import type { Query, TableRow, ${hasModifyDialog ? 'ModifyFormData' : ''} } from './extends'

    /** 页面Store */
    export interface Store {
      /** listPage组件实例 */
      listPageRef?: CsListPageInstance
      /** 查询参数 */
      query: Query
      /** 列表数据 */
      tableData: TableRow[]
      /** 列表总数 */
      total: number
      /** 导出的id数组 */
      exportIds: number[]
      ${
        exportExcelApiConfig ?
          `
            /** 导出按钮loading状态 */
            exportExcelLoading: boolean
          ` :
          ''
      }
      ${
        hasModifyDialog ?
          `
            /** 编辑或新增弹窗显示状态 */
            visibleDialogModify: boolean
            /** 是否为编辑模式 */
            isModify: boolean
            /** 编辑或新增表单数据 */
            modifyData: ModifyFormData
          ` :
          ''
      }

    }
  `
  utils.writeFile(path.join(codeConfig.modulePath, 'types', 'store.ts'), code)
}
